package com.bmob.lover.ui.adapter

import androidx.databinding.ViewDataBinding
import androidx.recyclerview.widget.DiffUtil
import com.bmob.lover.data.model.ObjectBean
import com.theone.mvvm.core.base.adapter.TheBaseQuickAdapter

//  ┏┓　　　┏┓
//┏┛┻━━━┛┻┓
//┃　　　　　　　┃
//┃　　　━　　　┃
//┃　┳┛　┗┳　┃
//┃　　　　　　　┃
//┃　　　┻　　　┃
//┃　　　　　　　┃
//┗━┓　　　┏━┛
//    ┃　　　┃                  神兽保佑
//    ┃　　　┃                  永无BUG！
//    ┃　　　┗━━━┓
//    ┃　　　　　　　┣┓
//    ┃　　　　　　　┏┛
//    ┗┓┓┏━┳┓┏┛
//      ┃┫┫　┃┫┫
//      ┗┻┛　┗┻┛
/**
 * @author The one
 * @date 2021-04-23 11:07
 * @describe TODO
 * @email 625805189@qq.com
 * @remark
 */
abstract class BaseBmobDiffAdapter<T : ObjectBean, BD : ViewDataBinding>(layoutId: Int) :
    TheBaseQuickAdapter<T, BD>(layoutId) {

    init {
        val callBack: DiffUtil.ItemCallback<T> = object : DiffUtil.ItemCallback<T>() {

            override fun areItemsTheSame(oldItem: T, newItem: T): Boolean =
                oldItem.equalId() == newItem.equalId()

            override fun areContentsTheSame(oldItem: T, newItem: T): Boolean =
                this@BaseBmobDiffAdapter.areContentsTheSame(oldItem, newItem)

        }
        setDiffCallback(callBack)
    }

    open fun areContentsTheSame(oldItem: T, newItem: T): Boolean {
        return oldItem == newItem
    }

}